package com.txzt.gaea.base.service;

import com.txzt.base.core.RtnInfo;
import com.txzt.gaea.base.dto.DictDetailQueryDTO;
import com.txzt.gaea.base.model.DictDetail;
import com.txzt.gaea.base.vo.DictDetailVo;
import com.txzt.gaea.common.base.service.BaseService;
import com.txzt.gaea.common.page.PageInfoBT;

public interface DictDetailService extends BaseService<DictDetail> {

    /**
     * 分頁查詢
     * @param dictDetailQueryDTO
     * @return RtnInfo
     */
    RtnInfo<PageInfoBT<DictDetailVo>> list(DictDetailQueryDTO dictDetailQueryDTO);

    /**
     * 数据存入
     * @param dictDetail
     * @return num
     */
    int save(DictDetail dictDetail);

    /**
     * 数据更新
     * @param dictDetail
     * @return num
     */
    int update(DictDetail dictDetail);

    /**
     * 数据查重 依照 value 和 dictId 字段
     * @param dictDetail
     * @return boolean
     */
    boolean addCheckValue(DictDetail dictDetail);

    /**
     * 更新数据查重 依照 value 和 dictId 字段 且 id 不等于自己
     * @param dictDetail
     * @return boolean
     */
    boolean updateCheckValue(DictDetail dictDetail);

    /**
     * 逻辑删除 依照 id 字段
     * @param id
     * @return num
     */
    int delete(Long id);

    /**
     * 查询最后的排序结果
     * @param dictId 所属字典ID
     * @return Integer
     */
    Integer getLastSort(Long dictId);

    /**
     * 查询数据 依照 id 字段
     * @param id
     * @return num
     */
    RtnInfo<DictDetail> getDictDetail(Long id);

    /**
     * 获取字典对应的编码标识
     * @param dictCode 字典编码
     * @param value 字典明细值
     * @return String
     */
    String getCodeFlag(String dictCode,String value);
}
